Computer data may be contained in a variety of data structures. For example, modeling data may be contained in a set data structure or a map data structure. A set data structure is a collection of objects or keys where the object or key can only exist once in the set. A map data structure is similar to a set data structure except that along with a collection of keys, a map data structure includes additional data. That is, the key of a map data structure is mapped to a value. For example, a map data structure container may contain a key that is a two-character abbreviation of a state and that key is mapped to a value that is the complete state name. The key data structure and the map data structure may utilize a tree-based data structure.
Tree-based data structures may allow fast population and fast retrieval of data. However, tree-based data structure may require substantial memory to store data. Much of the memory allocated to a tree-based data structure may be overhead. That is, the memory may be allocated to support the tree structure and other overhead required by the operating system in addition to the memory allocated for the data itself. For example, a map data structure may have 4 bytes allocated for the key and 4 bytes allocated to the value associated with the key. Thus, each entry in a container holding a map data structure may be 8 bytes of actual data. However, 20 bytes of overhead memory may be allocated to each entry.